main() {
  //购物车
  List<Map> goodsList = [
    {
      "id": 1,
      "price": 22.68,
      "count": 3,
      "goods_name": '西瓜',
      "selected": true,
    },
    {
      "id": 2,
      "price": 11.99,
      "count": 3,
      "goods_name": '草莓',
      "selected": true,
    },
    {
      "id": 3,
      "price": 60.55,
      "count": 3,
      "goods_name": '车厘子',
      "selected": false,
    },
  ];

  // 1. 计算选择产品的总金额
  // double totalPrice = 0;
  // for (int i = 0; i < goodsList.length; i++) {
  //   if (goodsList[i]['selected']) {
  //     totalPrice += goodsList[i]['price'] * goodsList[i]['count'];
  //   }
  // }
  // print('总金额：$totalPrice');
  //2.for in 循环
//   double totalPrice = 0;
//   for (var item in goodsList) {
//     if (item['selected']) {
//       totalPrice += item['price'] * item['count'];
//     }
//   }
//   print('总金额：$totalPrice');
//   // 2. 计算选择产品的总数量
//   int totalCount = 0;
//   for (var item in goodsList) {
//     if (item['selected']) {
//       totalCount += (item['count'] as int);
//     }
//   }
//   print('总数量：$totalCount');

//3.forEach 遍历
  // double totalPrice = 0;
  // goodsList.forEach((item) {
  //   if (item['selected']) {
  //     totalPrice += item['price'] * item['count'];
  //   }
  // });
  // print('总金额：$totalPrice');
  // // 3. 计算选择产品的总数量
  // int totalCount = 0;
  // goodsList.forEach((item) {
  //   if (item['selected']) {
  //     totalCount += (item['count'] as int);
  //   }
  // });
  // print('总数量：$totalCount');
  // 4.fold 方法，可以自定义初始值，适合当前购物车场景
//  double totalPrice = goodsList.fold(0, (value, item) {
//   if (item['selected']) {
//     return value + item['price'] * item['count'];
//   }
//   return value;
//  });
//  print('总金额：$totalPrice');
//  // 5. 计算选择产品的总数量
//  int totalCount = goodsList.fold(0, (pre, item) {
//   if (item['selected']) {
//     return pre + (item['count'] as int);
//   }
//   return pre;
//  });
//  print('总数量：$totalCount');

// 5. 筛选选中商品  where -> filter
  List<Map> selectedGoods =
      goodsList.where((item) => item['selected']).toList();
  print('选中的商品个数：${selectedGoods.length}');

// 6. 筛选选中商品的总金额
  double selectedGoodsPrice = selectedGoods.fold(0, (pre, item) {
    return pre + (item['price'] as double) * (item['count'] as int);
  });
  print('选中的商品总金额：${selectedGoodsPrice.toStringAsFixed(2)}');
}
